home *** CD-ROM | disk | FTP | other *** search
File List | 1996-11-17 | 10.4 KB | 466 lines |
- ' +++++++++++Diktat /18 +++++GfA+++++++++++5.90++++++
- ' +++++ G.Graßfeldt-Weingärtner ++++++++++++++
- DIM wort$(500),file$(12)
- gra%=1
- begi%=1
- GOSUB men
- DO
- GOSUB auswahl
- LOOP
- ' +++++++++++++++++++++++++++++++
- PROCEDURE richtig
- ri%=ri%+1
- DEFTEXT 1,16,0,32
- TEXT 135,365," !! GUT GEMACHT !! "
- PAUSE 50
- GRAPHMODE 1
- y=0
- DO
- x=0
- WHILE x<640
- PBOX x,y,x+40,y+70
- x=x+15
- WEND
- EXIT IF LEN(INKEY$) OR y>380
- y=y+71
- LOOP
- DEFFILL 1,2,2
- COLOR 0
- far%=6
- ' #############
- IF gra%=1
- FOR ra%=20 TO 150 STEP 20
- DEFFILL 1,2,far%
- PCIRCLE 320,195,ra%
- PCIRCLE 150,205,ra%-10
- PCIRCLE 490,205,ra%-10
- INC far%
- NEXT ra%
- ENDIF
- ' #############
- IF gra%=2
- FOR ra%=30 TO 90 STEP 10
- DEFFILL 1,2,far%
- PCIRCLE 190,150,ra%
- PCIRCLE 260,260,ra%
- PCIRCLE 380,260,ra%
- PCIRCLE 450,150,ra%
- PCIRCLE 320,90,ra%
- INC far%
- NEXT ra%
- ENDIF
- INC gra%
- IF gra%=3
- gra%=1
- ENDIF
- ' ##############
- DEFFILL 0,1,0
- PBOX 40,120,600,240
- PBOX 60,140,580,220
- TEXT 320-(LEN(wort$(wo%))*9),200,wort$(wo%) !Zentrieren
- COLOR 1
- BOX 62,142,578,218
- PRINT AT(32,10);"! Lese das Wort !"
- DEFFILL 1,1,0
- BOX 42,122,598,238
- DEFFILL 1,2,4
- FILL 300,130
- RETURN
- ' +++++++++++++++++++++++++++++++
- PROCEDURE falsch
- fa%=fa%+1
- anz$="Leider falsch"
- PBOX 195,353,435,385
- TEXT 200,380,anz$
- FOR li%=1 TO 40
- SOUND 1,15,li%,2
- GRAPHMODE 3
- y%=352
- WHILE y%<388
- LINE 195,y%,435,y%
- INC y%
- FOR i%=1 TO 60
- NEXT i%
- WEND
- NEXT li%
- SOUND 1,0,0,0
- GRAPHMODE 1
- lf%=l%*17
- lf%=360-lf%
- FOR xt%=100 TO lf% STEP 2
- TEXT xt%,180,wort$(wo%)
- NEXT xt%
- RETURN
- ' +++++++++Taste+++++++++++++++++
- PROCEDURE taste
- DEFFILL 0,1,0
- PBOX 175,350,455,395
- BOX 182,360,448,390
- PRINT AT(26,24);" Weiter --> beliebige Taste !"
- PRINT AT(1,1);
- t=INP(2)
- RETURN
- ' +++++Anzeige+++++++++++++++++++
- PROCEDURE anzeige
- DEFTEXT 1,0,0,20
- ri$="Richtig -->"
- fal$="Falsch -->"
- TEXT 100,260,ri$
- TEXT 240,260,ri%
- TEXT 360,260,fal$
- TEXT 490,260,fa%
- RETURN
- ' +++++++++++Menutitel+++++++++++++
- PROCEDURE men
- BLOAD "DTITEL.DOO",XBIOS(2)
- SGET titel$
- IF begi%=1
- ALERT 2,"Anleitung|erwünscht",2,"ja|nein",anl%
- IF anl%=1
- GOSUB anleit
- ENDIF
- begi%=0
- ENDIF
- RETURN
- ' ++++++++++++++++++++++++++++++++++
- PROCEDURE auswahl
- back:
- SPUT titel$
- DO
- MOUSE x,y,k
- '
- d%=INT(x/310) ! 320 ist Feldbreite
- e%=INT(y/70) ! 70 ist Feldhöhe (Pixel)
- f%=2*e%+d% ! F=Feldnummer
- EXIT IF k=1 AND x>26 AND x<613 AND y>66 AND y<348 ! linke Maustaste
- LOOP
- IF f%=2 OR f%=4 OR f%=6 OR f%=8 THEN
- x=32
- ELSE
- x=608
- ENDIF
- DEFFILL 1,2,2
- FILL x,y
- PAUSE 60
- IF f%<8
- GOSUB wieder !Wortwiederholung ein-aus
- ENDIF
- IF f%=9
- ALERT 2,"Wirklich aufhören",2,"Ende|Nein",en%
- IF en%=1 THEN
- END
- ELSE
- GOTO back
- ENDIF
- ENDIF
- IF f%>1
- IF f%<8
- GOSUB schreiben
- ENDIF
- ENDIF
- IF f%=8
- GOSUB wortdat
- ENDIF
- RETURN
- ' +++++++++++++++++++++++++++++++++
- PROCEDURE schreiben
- GRAPHMODE 1
- ri%=0
- fa%=0
- CLS
- DEFLINE 1,1
- DEFTEXT 1,16,0,26
- muster=4
- wo%=1
- IF wort$(wo%)=""
- GOSUB fehl
- ENDIF
- DO
- EXIT IF RIGHT$(wort$(wo%),1)="#" OR wort$(wo%)=" " OR wort$(wo%)=""
- CLS
- TEXT 200,100,260,"DIKTAT"
- BOX 2,200,60,230
- BOX 4,203,62,227
- BOX 6,205,64,225
- PRINT AT(3,14);wo%
- BOX 400,200,580,230
- BOX 402,203,582,227
- BOX 404,205,584,225
- PRINT AT(56,14);"Ri:";ri%;" Fa:";fa%
- BOX 50,120,600,200
- BOX 47,117,603,203
- BOX 50,230,600,310
- BOX 47,227,603,313
- IF wd%=1
- PRINT AT(28,23);" Wiederholung + Ende #"
- ELSE
- PRINT AT(28,23);"Wiederholung aus!! Ende #"
- ENDIF
- RBOX 195,350,435,370
- DEFFILL 1,2,muster
- FILL 1,1
- FILL 300,205
- ' ++++++++++
- l%=LEN(wort$(wo%))
- le%=l%/2
- teil%=l%-le%
- zuf%=RANDOM(l%)+1
- ' ++++++++++++++
- c$=""
- IF f%=2
- c$=""
- ENDIF
- IF f%=5
- c$=LEFT$(wort$(wo%),le%)
- c$=c$+STRING$(teil%,"_")
- ENDIF
- IF f%=4
- c$=wort$(wo%)
- MID$(c$,zuf%)="_"
- ENDIF
- IF f%=3
- c$=RIGHT$(wort$(wo%),le%)
- c$=STRING$(teil%,"_")+c$
- ENDIF
- IF f%=6
- c$=wort$(wo%)
- MID$(c$,zuf%)="__"
- ENDIF
- ' +++++++++++++
- wieder:
- TEXT 100,180,wort$(wo%)
- IF f%=2
- pau%=1
- ELSE
- pau%=100
- ENDIF
- PAUSE pau%
- TEXT 100,180,c$
- ' +++++++++++++
- IF f%=7
- GOSUB verdeck
- ENDIF
- ' ++++++++++++
- PRINT CHR$(7)
- TEXT 80,280," "
- TEXT 73,282,"⇨"
- txt$=""
- DO
- DO
- bu$=INKEY$
- EXIT IF bu$<>" " !bei Eingabefehler
- LOOP
- EXIT IF bu$=CHR$(13) OR LEN(txt$)>27 ! Return oder Wort zu lang
- TEXT 100,280,txt$
- IF bu$=CHR$(8) AND LEN(txt$)>0 ! Backspace testen
- txt$=LEFT$(txt$,LEN(txt$)-1)
- frei$=" "
- TEXT 100,280,frei$
- TEXT 100,280,txt$
- ELSE
- IF bu$<>CHR$(8) THEN
- txt$=txt$+bu$
- ENDIF
- ENDIF
- LOOP
- IF wd%=1
- IF RIGHT$(txt$,1)="+"
- PRINT AT(1,1)
- GOTO wieder
- ENDIF
- ENDIF
- '
- EXIT IF RIGHT$(txt$,1)="#"
- IF txt$=wort$(wo%)
- GOSUB richtig
- GRAPHMODE 1
- ELSE
- GOSUB falsch
- ENDIF
- bu$=""
- txt$=""
- muster=muster+1
- IF muster=23
- muster=2
- ENDIF
- GOSUB taste
- INC wo%
- LOOP
- ' +++++Ende++++++++++
- CLS
- BOX 55,195,585,280
- BOX 52,192,588,283
- BOX 50,190,590,285
- BOX 30,80,610,340
- TEXT 120,180,400,"E N D E"
- DEFFILL 1,2,7
- FILL 130,170
- GOSUB anzeige
- GOSUB taste
- RETURN
- ' +++++++++++++++++++++++++
- PROCEDURE speichern
- CLS
- PRINT " N e u e Diktatwörter eingeben ( Wort + Return)."
- PRINT " Beenden: -#- eingeben und Return drücken !"
- PRINT " Dateiname max. 8+3 Buchstaben zB.: AUTOBAHN.DAT"
- PRINT " Wortkorrektur: Statt neuem Wort - (minus) und Return "
- PRINT " eingeben und das Wort nochmals richtig schreiben !"
- PRINT " Neue Wörter an eine <bestehende> Datei anhängen:In der"
- PRINT " Fileselectbox den Dateinamen auswählen und dann danach"
- PRINT " in der Alertbox <erweit.> anklicken. "
- PRINT " Maximal 500 Wörter pro Datei möglich."
- PRINT
- wo%=1
- alt$=wort$(1)
- DO
- PRINT wo%;")";
- FORM INPUT 28,wort$(wo%)
- GOSUB leer
- '
- IF RIGHT$(wort$(wo%),1)="-" ! Wortkorrektur
- wo%=wo%-2
- ENDIF
- IF wo%<1
- wo%=0
- ENDIF
- EXIT IF RIGHT$(wort$(wo%),1)="#" OR wo%=500
- INC wo%
- LOOP
- ' +++++++++
- IF RIGHT$(wort$(1),1)="#"
- wort$(1)=alt$
- GOTO weiter
- ENDIF
- ' ++++ Datei schreiben ++++++++++++++++
- nochmal:
- CLOSE #1
- GOSUB laufw
- FILESELECT laufwerk$," ",file$
- IF file$="" ! bei Abbruch
- GOTO weiter
- ENDIF
- wo%=1
- ant%=0
- IF EXIST(file$)
- ALERT 3,"Dateiname bereits vorhanden|Datei erweitern ?|Datei überschreiben ?",1,"erweit.|schreibe|Abbruch",ant%
- ENDIF
- IF ant%=1
- OPEN "A",#1,file$
- ENDIF
- IF ant%=2 OR ant%=0
- OPEN "O",#1,file$
- ENDIF
- IF ant%=3
- GOTO nochmal
- ENDIF
- DO
- EXIT IF RIGHT$(wort$(wo%),1)="#"
- PRINT #1;wort$(wo%)
- INC wo%
- LOOP
- CLOSE #1
- weiter:
- RETURN
- ' +++++++++++++++++++++++++++
- PROCEDURE verdeck
- PBOX 60,140,590,170
- RETURN
- ' +++++++++++++++++++++++++++
- PROCEDURE einlesen
- GOSUB laufw
- CLS
- PRINT " Welche Datei (xxxxxxxx.DAT) soll geübt werden ?"
- PRINT " -----------------------------------------------------------------------"
- GOSUB loesch
- FILESELECT laufwerk$," ",file$
- wo%=1
- IF EXIST(file$)
- OPEN "I",#1,file$
- DO
- EXIT IF EOF(#1) OR wo%=501
- INPUT #1;wort$(wo%)
- PRINT wort$(wo%);" ";
- IF LEN(wort$(wo%))<=1
- IF wo%>=1
- DEC wo%
- ENDIF
- ENDIF
- GOSUB leer ! Leerstellen abfragen
- INC wo%
- LOOP
- CLOSE #1
- ELSE
- GOSUB fehl
- ENDIF
- GOSUB taste
- RETURN
- ' +++++++++++
- PROCEDURE fehl
- te$="Keine Wortdatei gefunden !|Bitte erst einlesen|oder neu erstellen !"
- kn$="Weiter"
- ALERT 1,te$,1,kn$,knopf%
- RETURN
- ' ++++++++++++
- PROCEDURE anleit
- CLS
- PRINT AT(8,7);" --------- Anleitung ---------"
- PRINT " Mit der Maus werden die einzelnen Übungsarten ausgewählt."
- PRINT " Bei der Worteingabe können notwendige Korrekturen mit der"
- PRINT " Backspace-Taste erfolgen !! Eingaben mit der Return-Taste"
- PRINT " abschließen. Wortwiederholung --> + und RETURN eingeben."
- PRINT " Vorzeitiges Beenden der Übung --> # und RETURN drücken."
- PRINT " Alle erstellten Wortdateien müssen die Endung ...DAT haben"
- PRINT " (zB.:Besuch.DAT)."
- PRINT " _____________________________"
- PRINT " Wichtig !! Vor den Übungen zuerst eine Wortdatei einlesen"
- PRINT " oder eine Wortdatei neu erstellen !"
- BOX 30,60,610,320
- BOX 50,80,590,300
- FILL 300,61
- GOSUB taste
- SPUT titel$
- RETURN
- ' +++++++++++++++++++++++++++++
- PROCEDURE wortdat
- ALERT 2,"Diktatwörter laden|oder neu schreiben ?",1," laden | neu ",zahl%
- IF zahl%=2
- GOSUB speichern
- ELSE
- GOSUB einlesen
- ENDIF
- RETURN
- ' ++++++++++++++++++++++++++++++
- PROCEDURE laufw
- ALERT 2," | Welches Laufwerk | benutzen ? | ",1," A | B | C ",lauf%
- IF lauf%=1
- laufwerk$="A:\*.Dat"
- ENDIF
- IF lauf%=2
- laufwerk$="B:\*.Dat"
- ENDIF
- IF lauf%=3
- laufwerk$="C:\*.dat"
- ENDIF
- RETURN
- ' +++++++++++++++++++++++++++++++
- PROCEDURE loesch !Alte Wörter löschen
- FOR wo%=1 TO 500
- wort$(wo%)=""
- NEXT wo%
- RETURN
- ' ++++++++++++++++++++++++++++++++
- PROCEDURE wieder
- ALERT 2,"Wortwiederholung",1,"ein|aus",wd%
- RETURN
- ' +++++++++++++++++++++++++++++++++
- PROCEDURE leer
- WHILE RIGHT$(wort$(wo%))=" "
- wort$(wo%)=LEFT$(wort$(wo%),LEN(wort$(wo%))-1)
- WEND
- WHILE LEFT$(wort$(wo%))=" "
- wort$(wo%)=RIGHT$(wort$(wo%),LEN(wort$(wo%))-1)
- WEND
- RETURN
- ' +++++++++++++++++++++++++++++++++++
-